package cn.iocoder.yudao.module.pm.service.thawrecords;

import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.module.pm.controller.admin.thawrecords.vo.ThawRecordsPageReqVO;
import cn.iocoder.yudao.module.pm.controller.admin.thawrecords.vo.ThawRecordsSaveReqVO;
import cn.iocoder.yudao.module.pm.controller.app.thawrecords.vo.AppThawRecordsPageReqVO;
import cn.iocoder.yudao.module.pm.controller.app.thawrecords.vo.AppThawRecordsRespVO;
import cn.iocoder.yudao.module.pm.controller.app.thawrecords.vo.AppThawRecordsSaveReqVO;
import cn.iocoder.yudao.module.pm.dal.dataobject.thawrecords.ThawRecordsDO;

import javax.validation.Valid;
import java.util.List;

/**
 * 过程管理-解冻专项台账 Service 接口
 *
 * @author yisl
 */
public interface ThawRecordsService {

    /**
     * 创建过程管理-解冻专项台账
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long createThawRecords(@Valid ThawRecordsSaveReqVO createReqVO);

    /**
     * 更新过程管理-解冻专项台账
     *
     * @param updateReqVO 更新信息
     */
    void updateThawRecords(@Valid ThawRecordsSaveReqVO updateReqVO);

    /**
     * 删除过程管理-解冻专项台账
     *
     * @param id 编号
     */
    void deleteThawRecords(Long id);

    /**
    * 批量删除过程管理-解冻专项台账
    *
    * @param ids 编号
    */
    void deleteThawRecordsListByIds(List<Long> ids);

    /**
     * 获得过程管理-解冻专项台账
     *
     * @param id 编号
     * @return 过程管理-解冻专项台账
     */
    ThawRecordsDO getThawRecords(Long id);

    /**
     * 获得过程管理-解冻专项台账分页
     *
     * @param pageReqVO 分页查询
     * @return 过程管理-解冻专项台账分页
     */
    PageResult<ThawRecordsDO> getThawRecordsPage(ThawRecordsPageReqVO pageReqVO);


    //----------------------app接口-----------------------
    /**
     * 创建过程管理-解冻专项台账
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Long appCreateThawRecords(@Valid AppThawRecordsSaveReqVO createReqVO);

    /**
     * 更新过程管理-解冻专项台账
     *
     * @param updateReqVO 更新信息
     */
    void appUpdateThawRecords(@Valid AppThawRecordsSaveReqVO updateReqVO);

    /**
     * 删除过程管理-解冻专项台账
     *
     * @param id 编号
     */
    void appDeleteThawRecords(Long id);

    /**
     * 获得过程管理-解冻专项台账
     *
     * @param id 编号
     * @return 过程管理-解冻专项台账
     */
    AppThawRecordsRespVO appGetThawRecords(Long id);

    /**
     * 获得过程管理-解冻专项台账分页
     *
     * @param pageReqVO 分页查询
     * @return 过程管理-解冻专项台账分页
     */
    PageResult<AppThawRecordsRespVO> appGetThawRecordsPage(AppThawRecordsPageReqVO pageReqVO);

}